<?php
/**
 * Created by PhpStorm.
 * User: 周国强
 * Date: 2016/4/27
 * Time: 21:17
 */
namespace Common\Controller;
use Think\Controller;

class AdminbaseController extends Controller
{
    // 缓存对象
    protected $cache_model=array();
    // 用户id
    protected $user_id;
    // 其他

    /*
     * 初始化，登录判断，权限验证，系统参数读取
     * */
    public function _initialize(){
//        // session兼容处理
//        $this->restart();
//        // 登录判断以及权限验证
//        if(isset($_SESSION['ADMIN_ID'])){
//            $users_obj= M("Users");
//            $id=$_SESSION['ADMIN_ID'];
//            $user=$users_obj->where(array('id'=>$id))->find();
//            if(!$this->check_access($id)){
//                $this->error("您没有访问权限！");
//                exit();
//            }
//            // 将管理员信息赋予给模版
//            $this->assign("admin",$user);
//        }else{
//            if(IS_AJAX){
//                $this->error("您还没有登录！",U("public/login"));
//            }else{
//                header("Location:".U("admin/public/login"));
//                exit();
//            }
//        }
//        // 读入系统配置参数
//        C(wk_getcache('Config'));
    }

    /*
     * 检查权限
     * @param int $uid 用户id
     * @return boolean
     * */
    private function check_access($uid){
        //如果管理员id是1，则无需判断
        if($uid == 1){
            return true;
        }
        $rule= CONTROLLER_NAME.ACTION_NAME;
        // 除去后台首页不需要验证，其他的都要验证
        $no_need_check_rules=array("Index/index");
        if( !in_array($rule,$no_need_check_rules) ){
            $auth=new \Think\Auth();
            return $auth->check($rule,$uid);
        }else{
            return true;
        }
    }

    // 兼容swfuploader等flash上传插件
    private function restart(){
        session('[pause]'); // 暂停session写入
        if(isset($_POST['PHPSESSID'])){
            session_id($_POST['PHPSESSID']);
        }
        session('[start]');
    }

    /*
     * 通用添加方法
     * 在具体的类中需要使用_before_add方法进行数据预处理
     * */
    public function add(){
        $this->display('edit');
    }

    /*
     * 通用添加处理操作
     * 在具体类中使用_before_insert方法进行数据预处理
     * */
    public function insert(){

    }

    /*
     * 通用编辑方法
     * 在具体类中使用_before_edit方法进行数据预处理
     * */

    public function edit(){

    }

    /*
     * 通用更新操作
     * 在具体类中使用_before_update方法进行数据预处理
     * */

    public function update(){

    }

    /*
     * 通用删除操作
     * 包括 删除单项 删除多项 级联删除
     * */
    public function delete(){

    }

    /*
     * 通用排序操作
     * */
    public function listorder(){

    }

    /*
     * 状态切换
     * status 值切换
     * */
    public function toggle(){

    }


    /*
     * 空操作
     * @param string $name 操作方法
     * */
    public function _empty($name) {
        $this->error('该页面不存在！');
    }
}
